package cc.mrbird.febs.accounting.service;

import cc.mrbird.febs.accounting.dto.standardSub.SingleExportDTO;
import cc.mrbird.febs.accounting.dto.standardSub.StandardSubDTO;
import cc.mrbird.febs.accounting.entity.StandardSub;

import cc.mrbird.febs.accounting.dto.standardSub.SubMainDetailDTO;
import cc.mrbird.febs.common.entity.QueryRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 标准明细科目表 Service接口
 *
 * @author baoyinlei
 * @date 2021-11-29 16:39:25
 */
public interface IStandardSubService extends IService<StandardSub> {
    /**
     * 查询（分页）
     *
     * @param request QueryRequest
     * @param standardSub standardSub
     * @return IPage<StandardSub>
     */
    IPage<StandardSub> findStandardSubs(QueryRequest request, StandardSub standardSub);

    /**
     * 查询（所有）
     *
     * @param standardSub standardSub
     * @return List<StandardSub>
     */
    List<StandardSub> findStandardSubs(StandardSub standardSub);

    /**
     * 新增
     *
     * @param standardSub standardSub
     */
    void createStandardSub(StandardSub standardSub);

    /**
     * 修改
     *
     * @param standardSub standardSub
     */
    void updateStandardSub(StandardSub standardSub);

    /**
     * 删除
     *
     * @param standardSub standardSub
     */
    void deleteStandardSub(StandardSub standardSub);

    /*
     * @Author HBH
     * @Description 获取类型为3的明细科目
     * @Date 2022/3/28
     **/
    List<StandardSub> queryByType(Integer type);

    List<SubMainDetailDTO> querySubMainDetail();

    List<SubMainDetailDTO> queryAllSubDetail(Long companyId, Long projectId, List<String> yearMonths);

    List<SubMainDetailDTO> queryAllSubDetailNoCompany(Long projectId, List<String> yearMonths);

    List<SingleExportDTO> querySubMainStandard(Long projectId, List<String> yearMonths);

    /*
     * @Author HBH
     * @Description 获取统计可科目
     * @Date 2022/3/28
     **/
    List<StandardSub> getStatisticsStandard();

    /*
     * @Author HBH
     * @Description 获取所有统计明细科目
     * @Date 2022/4/1
     **/
    List<StandardSubDTO> getDetailStatisticsStandard(List<String> projectIds, String mainName);
}
